package com.hope.hotel.entity.vo;

import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 评论数据传输对象
 */
@Data
public class ReviewVO {
    private Long id;                // 评论ID
    private Long bookingId;         // 订单ID
    private Long hotelId;           // 酒店ID
    private Long userId;            // 用户ID
    private String userName;        // 用户名称
    private String userAvatar;      // 用户头像
    private Integer rating;         // 评分(1-5)
    private String content;         // 评论内容
    private List<String> photos;    // 评论图片列表
    private List<String> tags;      // 评论标签列表
    private String reply;           // 酒店回复内容
    private LocalDateTime replyTime;// 回复时间
    private String replyDate;       // 回复日期(yyyy-MM-dd格式)
    private LocalDateTime createdAt;// 创建时间
    private String date;            // 评论日期(yyyy-MM-dd格式)
    private String status;          // 状态: pending-待回复, replied-已回复, hidden-已隐藏
    
    /**
     * 获取前端状态码
     * @param dbStatus 数据库状态码
     * @return 前端状态码字符串
     */
    public static String getStatusString(Integer dbStatus) {
        if (dbStatus == null) return "pending";
        
        switch (dbStatus) {
            case 1: return "replied";
            case 2: return "hidden";
            case 3: return "deleted";
            case 0:
            default: return "pending";
        }
    }
    
    /**
     * 获取数据库状态码
     * @param statusString 前端状态码字符串
     * @return 数据库状态码
     */
    public static Integer getStatusCode(String statusString) {
        if (statusString == null) return 0;
        
        switch (statusString) {
            case "replied": return 1;
            case "hidden": return 2;
            case "deleted": return 3;
            case "pending":
            default: return 0;
        }
    }
} 